package com.lv.service.model

import com.lv.common.network.model.DataResult
import com.lv.service.net.ClientHFRReqBody
import com.lv.service.net.CompanyReqBody
import com.lv.service.net.LoginByCodeReqBody
import com.lv.service.net.LoginByPassWordReqBody
import com.lv.service.net.SendCodeBody
import com.lv.service.net.UserDeleteReqBody
import com.lv.service.net.VerifyCodeBody
import com.lv.service.network.BaseYgxRsp
import okhttp3.MultipartBody
import okhttp3.RequestBody

/**
 * 作者： 志威  zhiwei.org
 * 主页： Github: https://github.com/zhiwei1990
 * 日期： 2020年09月27日 01:36
 * 签名： 天行健，君子以自强不息；地势坤，君子以厚德载物。
 *      _              _           _     _   ____  _             _ _
 *     / \   _ __   __| |_ __ ___ (_) __| | / ___|| |_ _   _  __| (_) ___
 *    / _ \ | '_ \ / _` | '__/ _ \| |/ _` | \___ \| __| | | |/ _` | |/ _ \
 *   / ___ \| | | | (_| | | | (_) | | (_| |  ___) | |_| |_| | (_| | | (_) |
 *  /_/   \_\_| |_|\__,_|_|  \___/|_|\__,_| |____/ \__|\__,_|\__,_|_|\___/  -- 志威 zhiwei.org
 *
 * You never know what you can do until you try !
 * ----------------------------------------------------------------
 * 登录模块的相关的抽象数据接口
 */
interface IServiceResource {
    suspend fun login(body: LoginByPassWordReqBody): DataResult<BaseYgxRsp>

    suspend fun loginByCode(body: LoginByCodeReqBody): DataResult<BaseYgxRsp>

    /**
     * 最新用户信息
     */
    suspend fun latestUser(): DataResult<BaseYgxRsp>

    /**
     * 基础信息 分类和地址
     */

    suspend fun findPros(map: Map<String, String>): DataResult<BaseYgxRsp>

    /**
     * 刷新Token
     */
    suspend fun refreshtoken(): DataResult<BaseYgxRsp>

    /**
     * 版本更新
     */
    suspend fun findVersionUpdate(): DataResult<BaseYgxRsp>


    /**
     * 推送安卓
     */
    suspend fun saveTX(map: Map<String, String>): DataResult<BaseYgxRsp>


    /**
     * 发送短信验证
     */
    suspend fun sendCode(map: SendCodeBody): DataResult<BaseYgxRsp>


    /**
     * 验证验证码
     */
    suspend fun verifyCode(map: VerifyCodeBody): DataResult<BaseYgxRsp>

    /**
     * 意见反馈
     */
    suspend fun feedback(text: String): DataResult<BaseYgxRsp>

    /**
     * 修改个人信息
     */
    suspend fun updateMyLogo(
        map: Map<String, RequestBody>, part: List<MultipartBody.Part>
    ): DataResult<BaseYgxRsp>

    /**
     * 修改个人信息
     */
    suspend fun updateMyMessage(body: Map<String, RequestBody>): DataResult<BaseYgxRsp>

    /**
     * 发送短信验证-修改公司
     */
    suspend fun sendCodeCom(map: SendCodeBody): DataResult<BaseYgxRsp>


    /**
     * 验证验证码-修改公司
     */
    suspend fun verifyCodeCom(map: VerifyCodeBody): DataResult<BaseYgxRsp>

    /**
     * 注销个人信息
     */
    suspend fun deleteUser(body: UserDeleteReqBody): DataResult<BaseYgxRsp>

    /**
     * 修改个人信息-业务员修改公司
     */
    suspend fun updatePasswordOrPhone(body: CompanyReqBody): DataResult<BaseYgxRsp>


    /**
     * 查找个数
     */
    suspend fun findCount(map: Map<String, String>): DataResult<BaseYgxRsp>


    /**
     * 查找单个期数
     */
    suspend fun findOnePdAndCa(map: Map<String, String>): DataResult<BaseYgxRsp>


    /**
     *  查看小程序或进件信息
     */
    suspend fun findOneSubmit(map: Map<String, String>): DataResult<BaseYgxRsp>


    /**
     *  亨富然基础信息
     */
    suspend fun findhengPros(map: Map<String, String>): DataResult<BaseYgxRsp>

    /**
     * 亨富然开户
     */
    suspend fun saveHengCompany(body: ClientHFRReqBody): DataResult<BaseYgxRsp>
}